803839cc: 27 bd fb 28  ADDIU sp, sp, 0xfffffb28 (-1240)
803839d0: af bf 00 14  SW ra, sp, 0x14 (20)

803839d4: 3c 0e 80 36  LUI t6, 0x8036 (32822)
803839d8: 8d ce 11 60  LW t6, t6, 0x1160 (4448)
803839dc: 8d cf 02 18  LW t7, t6, 0x218 (536)
803839e0: af af 00 20  SW t7, sp, 0x20 (32)                [sp + 0x20] = (*(0x80361160))->off0x218;

803839e4: 3c 18 80 36  LUI t8, 0x8036 (32822)
803839e8: 8f 18 11 60  LW t8, t8, 0x1160 (4448)
803839ec: c7 04 01 5c  LWC1 f4, t8, 0x15c (348)
803839f0: e7 a4 00 1c  SWC1 f4, sp, 0x1c (28)              [sp + 0x1c] = (*(0x80361160))->off0x15c;

803839f4: 3c 19 80 36  LUI t9, 0x8036 (32822)
803839f8: 8f 39 11 60  LW t9, t9, 0x1160 (4448)
803839fc: c7 26 01 94  LWC1 f6, t9, 0x194 (404)
80383a00: e7 a6 00 18  SWC1 f6, sp, 0x18 (24)              [sp + 0x18] = (*(0x80361160))->off0x194;

80383a04: 3c 08 80 36  LUI t0, 0x8036 (32822)
80383a08: 8d 08 11 60  LW t0, t0, 0x1160 (4448)
80383a0c: 3c 01 80 39  LUI at, 0x8039 (32825)
80383a10: c4 2a bc 80  LWC1 f10, at, 0xffffbc80 (-17280)
80383a14: c5 08 01 5c  LWC1 f8, t0, 0x15c (348)
80383a18: 46 0a 40 32  C.EQ.S f8, f10
80383a1c: 00 00 00 00  NOP
80383a20: 45 00 00 07  BC1F 0x80383a40 (pc + 0x1c)         if ((*(0x80361160))->off0x15c == *(0x8038bc80)) goto 0x80383a40;
80383a24: 00 00 00 00  NOP

80383a28: 3c 04 80 36  LUI a0, 0x8036 (32822)
80383a2c: 3c 05 80 36  LUI a1, 0x8036 (32822)
80383a30: 8c a5 11 58  LW a1, a1, 0x1158 (4440)
80383a34: 0c 0a 78 be  JAL 0x8029e2f8 (-2144738568)        [sp + 0x1c] = 0x8029e2f8(*(0x80361160), *(0x80361158));   /* distance between */
80383a38: 8c 84 11 60  LW a0, a0, 0x1160 (4448)
80383a3c: e7 a0 00 1c  SWC1 f0, sp, 0x1c (28)

*
80383a40: 3c 09 80 36  LUI t1, 0x8036 (32822)
80383a44: 8d 29 11 60  LW t1, t1, 0x1160 (4448)
80383a48: 3c 01 45 7a  LUI at, 0x457a (17786)
80383a4c: 44 81 90 00  MTC1 at, f18
80383a50: c5 30 01 94  LWC1 f16, t1, 0x194 (404)
80383a54: 46 10 90 3c  C.LT.S f18, f16
80383a58: 00 00 00 00  NOP
80383a5c: 45 00 00 05  BC1F 0x80383a74 (pc + 0x14)         if ((*(0x80361160))->off0x194 < 4000.0) goto 0x80383a74;
80383a60: 00 00 00 00  NOP

80383a64: 3c 0a 80 36  LUI t2, 0x8036 (32822)
80383a68: 8d 4a 11 60  LW t2, t2, 0x1160 (4448)
80383a6c: c5 44 01 94  LWC1 f4, t2, 0x194 (404)
80383a70: e5 44 01 9c  SWC1 f4, t2, 0x19c (412)            (*(0x80361160))->off0x19c = (*(0x80361160))->off0x194;

*
80383a74: 3c 0b 80 34  LUI t3, 0x8034 (32820)
80383a78: 8d 6b d4 80  LW t3, t3, 0xffffd480 (-11136)
80383a7c: 31 6c 00 40  ANDI t4, t3, 0x40 (64)
80383a80: 15 80 00 20  BNE t4, r0, 0x80383b04 (pc + 0x80)  if ((*(0x8033d480)) & 0x40 !=  0) goto 0x80383b04;
80383a84: 00 00 00 00  NOP

80383a88: c7 a6 00 1c  LWC1 f6, sp, 0x1c (28)
80383a8c: c7 a8 00 18  LWC1 f8, sp, 0x18 (24)
80383a90: 46 08 30 3c  C.LT.S f6, f8
80383a94: 00 00 00 00  NOP
80383a98: 45 00 00 1a  BC1F 0x80383b04 (pc + 0x68)         if ([sp + 0x1c] < [sp + 0x18]) goto 0x80383b04;
80383a9c: 00 00 00 00  NOP

80383aa0: 3c 0d 80 36  LUI t5, 0x8036 (32822)
80383aa4: 8d ad 11 60  LW t5, t5, 0x1160 (4448)
80383aa8: 85 ae 00 74  LH t6, t5, 0x74 (116)
80383aac: 31 cf 00 08  ANDI t7, t6, 0x8 (8)
80383ab0: 15 e0 00 14  BNE t7, r0, 0x80383b04 (pc + 0x50)  if (((*(0x80361160))->off0x74 & 8) != 0) goto 0x80383b04;
80383ab4: 00 00 00 00  NOP

80383ab8: 8f b8 00 20  LW t8, sp, 0x20 (32)
80383abc: 27 19 00 02  ADDIU t9, t8, 0x2 (2)
80383ac0: af b9 00 20  SW t9, sp, 0x20 (32)                [sp + 0x20] += 2;

80383ac4: 27 a4 00 20  ADDIU a0, sp, 0x20 (32)
80383ac8: 0c 0e 0d 85  JAL 0x80383614 (-2143799788)        0x80383614(&[sp + 0x20], &[sp + 0x24]);
80383acc: 27 a5 00 24  ADDIU a1, sp, 0x24 (36)

80383ad0: 8f a8 00 20  LW t0, sp, 0x20 (32)
80383ad4: 24 01 00 41  ADDIU at, r0, 0x41 (65)
80383ad8: 85 09 00 00  LH t1, t0, 0x0 (0)
80383adc: 11 21 00 09  BEQ at, t1, 0x80383b04 (pc + 0x24)  if (0x41 == *[sp + 0x20]) goto 0x80383b04;
80383ae0: 00 00 00 00  NOP

*
80383ae4: 27 a4 00 20  ADDIU a0, sp, 0x20 (32)
80383ae8: 0c 0e 0e 0a  JAL 0x80383828 (-2143799256)        0x80383828(&[sp + 0x20], &[sp + 0x24]);
80383aec: 27 a5 00 24  ADDIU a1, sp, 0x24 (36)

80383af0: 8f aa 00 20  LW t2, sp, 0x20 (32)
80383af4: 24 01 00 41  ADDIU at, r0, 0x41 (65)
80383af8: 85 4b 00 00  LH t3, t2, 0x0 (0)
80383afc: 15 61 ff f9  BNE t3, at, 0x80383ae4 (pc - 0x1c)  if (*[sp + 0x20] != 0x41) goto 0x80383ae4;
80383b00: 00 00 00 00  NOP

****
80383b04: 3c 0c 80 36  LUI t4, 0x8036 (32822)
80383b08: 8d 8c 11 60  LW t4, t4, 0x1160 (4448)
80383b0c: c7 aa 00 1c  LWC1 f10, sp, 0x1c (28)
80383b10: c5 90 01 9c  LWC1 f16, t4, 0x19c (412)
80383b14: 46 10 50 3c  C.LT.S f10, f16
80383b18: 00 00 00 00  NOP
80383b1c: 45 00 00 07  BC1F 0x80383b3c (pc + 0x1c)         if ([sp + 0x1c] < (*(0x80361160))->off0x19c) goto 0x80383b3c;
80383b20: 00 00 00 00  NOP

80383b24: 3c 0d 80 36  LUI t5, 0x8036 (32822)
80383b28: 8d ad 11 60  LW t5, t5, 0x1160 (4448)
80383b2c: 85 ae 00 02  LH t6, t5, 0x2 (2)
80383b30: 35 cf 00 01  ORI t7, t6, 0x1 (1)
80383b34: 10 00 00 07  BEQ r0, r0, 0x80383b54 (pc + 0x1c)  (*(0x80361160))->off0x02 |= 1;
80383b38: a5 af 00 02  SH t7, t5, 0x2 (2)                  goto 0x80383b54;

*
80383b3c: 3c 18 80 36  LUI t8, 0x8036 (32822)
80383b40: 8f 18 11 60  LW t8, t8, 0x1160 (4448)
80383b44: 24 01 ff fe  ADDIU at, r0, 0xfffffffe (-2)
80383b48: 87 19 00 02  LH t9, t8, 0x2 (2)
80383b4c: 03 21 40 24  AND t0, t9, at
80383b50: a7 08 00 02  SH t0, t8, 0x2 (2)                  (*(0x80361160))->off0x02 &= ~1;

*
80383b54: 10 00 00 01  BEQ r0, r0, 0x80383b5c (pc + 0x4)
80383b58: 00 00 00 00  NOP
80383b5c: 8f bf 00 14  LW ra, sp, 0x14 (20)
80383b60: 27 bd 04 d8  ADDIU sp, sp, 0x4d8 (1240)
80383b64: 03 e0 00 08  JR ra
80383b68: 00 00 00 00  NOP



[sp + 0x20] = (*(0x80361160))->off0x218;
[sp + 0x1c] = (*(0x80361160))->off0x15c;
[sp + 0x18] = (*(0x80361160))->off0x194;
if ((*(0x80361160))->off0x15c == *(0x8038bc80)) goto 0x80383a40;
[sp + 0x1c] = 0x8029e2f8(*(0x80361160), *(0x80361158));   /* distance between */
80383a40:
if ((*(0x80361160))->off0x194 < 4000.0) goto 0x80383a74;
(*(0x80361160))->off0x19c = (*(0x80361160))->off0x194;
80383a74:
if ((*(0x8033d480)) & 0x40 !=  0) goto 0x80383b04;
if ([sp + 0x1c] < [sp + 0x18]) goto 0x80383b04;
if (((*(0x80361160))->off0x74 & 8) != 0) goto 0x80383b04;
[sp + 0x20] += 2;
0x80383614(&[sp + 0x20], &[sp + 0x24]);
if (0x41 == *[sp + 0x20]) goto 0x80383b04;
80383ae4:
0x80383828(&[sp + 0x20], &[sp + 0x24]);
if (*[sp + 0x20] != 0x41) goto 0x80383ae4;
80383b04:
80383b04:
80383b04:
80383b04:
if ([sp + 0x1c] < (*(0x80361160))->off0x19c) goto 0x80383b3c;
(*(0x80361160))->off0x02 |= 1;
goto 0x80383b54;
80383b3c:
(*(0x80361160))->off0x02 &= ~1;
80383b54:


[sp + 0x20] = (*(0x80361160))->off0x218;
[sp + 0x1c] = (*(0x80361160))->off0x15c;
[sp + 0x18] = (*(0x80361160))->off0x194;

if ((*(0x80361160))->off0x15c != *(0x8038bc80)) {
    [sp + 0x1c] = 0x8029e2f8(*(0x80361160), *(0x80361158));   /* distance between */
}

if ((*(0x80361160))->off0x194 >= 4000.0) {
    (*(0x80361160))->off0x19c = (*(0x80361160))->off0x194;
}

if (((*(0x8033d480)) & 0x40 ==  0) && [sp + 0x1c] >= [sp + 0x18] && (((*(0x80361160))->off0x74 & 8) == 0)) {
    [sp + 0x20] += 2;
    0x80383614(&[sp + 0x20], &[sp + 0x24]);
    while (0x41 != *[sp + 0x20]) {
        0x80383828(&[sp + 0x20], &[sp + 0x24]);
    }
}

if ([sp + 0x1c] >= (*(0x80361160))->off0x19c) {
    (*(0x80361160))->off0x02 |= 1;
} else {
    (*(0x80361160))->off0x02 &= ~1;
}
